package com.nfit.shopweb.service;

import com.github.pagehelper.PageInfo;
import com.nfit.shopmodel.dto.system.AssginMenuDto;
import com.nfit.shopmodel.dto.system.AssginRoleDto;
import com.nfit.shopmodel.dto.system.SysRoleDto;
import com.nfit.shopmodel.entity.system.SysRole;
import io.swagger.v3.oas.annotations.media.Schema;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * ClassName:SysRoleService
 * Package:com.nfit.shopweb.service
 * Description
 *
 * @Author L
 * @Create 2024/11/17 13:02
 */
@Schema(description = "角色业务接口")
public interface SysRoleService {
    /**
     * 带条件的分页
     * @param pageNum 当前页
     * @param pageSize 每页记录数
     * @param sysRoleDto 条件
     */
    PageInfo<SysRole> page(Integer pageNum, Integer pageSize, SysRoleDto sysRoleDto);

    /**
     * 添加角色
     * @param sysRole 封装前端传来的数据
     */
    void save(SysRole sysRole);

    /**
     * 删除角色
     */
    void delete(Long id);

    /**
     * 修改角色
     * @param sysRole 根据前端传来的数据进行修改
     */
    void update(SysRole sysRole);

    /**
     * 查询所有的角色
     */
    Map<String,Object>findAll(Long userId);

    /**
     * 根据角色id查询角色对应的菜单id和菜单数据,封装在map中
     */
    Map<String, Object> findByRoleIdAssignMenu(Long roleId);

    /**
     * 保存分配的id
     * @param assginMenuDto 封装前端传递的菜单id
     */
    void saveAssignMenu(AssginMenuDto assginMenuDto);
}
